package com.dzienniczekwedkarza.database.models.ORMLite;

import com.dzienniczekwedkarza.database.dao.ORMLite.AtlasRybDao;
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;


/*
W OrmLite aby klasa została zmapowana na model relacyjny musi posiadać bezargumentowy konstruktor, 
a każdy atrybut, który ma zostać odwzorowany w bazie musi mieć widoczność co najmniej pakietową,
oraz posiadać adnotację @DatabaseField. Można także używać adnotacji z javax.persistence,
jednak nie będą one opisane w tym tutorialu (opis dostępny w dokumentacji). 

W klasie należy zwrócić uwagę na adnotację przy id: @DatabaseField(generatedId = true).
Oznacza ona iż atrybut id będzie kluczem głównym w tabeli AtlasRyb i będzie on generowany automatycznie.
Warto także wiedzieć, iż adnotacja @DatabaseField domyślnie pozwala polom w bazie na przyjmowanie wartości null. 
Jeśli chcemy stworzyć pole, którego wartość ma być różna od null do adnotacji @DatabaseField należy dodać opcję canBeNull=false


Aby użyć DAO wywołujemy statyczną metodę createDao klasy com.j256.ormlite.dao.DaoManager.
Jednak przy tak zdefiniowanych klasach metoda zwróci wyjątek, gdyż nie wie której implementacji DAO ma użyć. 
Żeby to zmienić należy zmodyfikować klasę AtlasRyb, a konkretnie nad nazwą klasy dodać adnotację @DatabaseTable(daoClass=AtlasRybDao.class)
informującą klasę DaoManager którą implementację IAtlasRybDao ma wybrać, czyli: 

*/

/**
 * @author Rafał Wysogląd
 */


@DatabaseTable(daoClass=AtlasRybDao.class)
public class AtlasRyb {
	
	@DatabaseField(generatedId = true)
    public long id;
	@DatabaseField
    int ikonkaZdjęcia;
    @DatabaseField
    String nazwaRyby;
    @DatabaseField
    String nazwaRybyLacinska;
    @DatabaseField 
    String nazwaRodziny;
    @DatabaseField
    String opisRyby;
    
    
    public AtlasRyb() {
		
	}
    
   	public long getId() {
		return id;
	}


	public void setId(long id) {
		this.id = id;
	}


	public int getIkonkaZdjęcia() {
		return ikonkaZdjęcia;
	}


	public void setIkonkaZdjęcia(int ikonkaZdjęcia) {
		this.ikonkaZdjęcia = ikonkaZdjęcia;
	}


	public String getNazwaRyby() {
		return nazwaRyby;
	}


	public void setNazwaRyby(String nazwaRyby) {
		this.nazwaRyby = nazwaRyby;
	}


	public String getNazwaRybyLacinska() {
		return nazwaRybyLacinska;
	}


	public void setNazwaRybyLacinska(String nazwaRybyLacinska) {
		this.nazwaRybyLacinska = nazwaRybyLacinska;
	}


	public String getNazwaRodziny() {
		return nazwaRodziny;
	}


	public void setNazwaRodziny(String nazwaRodziny) {
		this.nazwaRodziny = nazwaRodziny;
	}

	public String getOpisRyby() {
		return opisRyby;
	}

	public void setOpisRyby(String opisRyby) {
		this.opisRyby = opisRyby;
	}
	
   
	
    
}
